import { Option, SysOrg } from "@/api/interface/index";
import { CANROCNET } from "@/api/config/servicePort";
import http from "@/api";

/**
 * 新增组织机构
 *
 * @param params 组织机构表单
 * @returns 返回是否成功
 */
export const addOrgApi = (params: SysOrg.Form) => {
  return http.post<boolean>(`${CANROCNET}/api/sys-org/addition`, params);
};

/**
 * 编辑组织机构
 *
 * @param params 组织机构表单
 * @returns 返回是否成功
 */
export const editOrgApi = (params: SysOrg.Form) => {
  return http.post<boolean>(`${CANROCNET}/api/sys-org/edit`, params);
};

/**
 * 启用/禁用组织机构
 *
 * @param params 组织机构Id
 * @returns 返回是否成功
 */
export const switchEnableOrgApi = (params: { id: string }) => {
  return http.post<boolean>(`${CANROCNET}/api/sys-org/enable`, params);
};

/**
 * 删除组织机构
 *
 * @param params 组织机构Id
 * @returns 返回是否成功
 */
export const deleteOrgApi = (params: { ids: string[] }) => {
  return http.post<boolean>(`${CANROCNET}/api/sys-org/del`, params);
};

/**
 * 获取组织机构列表
 *
 * @param params 组织机构查询参数
 * @returns 返回组织机构列表
 */
export const getOrgTreeApi = (params: SysOrg.Params) => {
  return http.get<SysOrg.Result[]>(`${CANROCNET}/api/sys-org/tree`, params);
};

/**
 * 获取已启用的组织机构列表
 *
 * @returns 返回组织机构列表
 */
export const getEnableOrgTreeApi = () => {
  return http.get<SysOrg.Result[]>(`${CANROCNET}/api/sys-org/tree`, { isEnable: true }, { loading: false });
};

/**
 * 获取组织机构级联列表
 *
 * @returns 返回组织机构级联列表
 */
export const getOrgCascaderOptionApi = () => {
  return http.get<Option.CascadeOption[]>(`${CANROCNET}/api/sys-org/cascader-option`, {}, { loading: false });
};
